home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / a_utils / perl / perl5a1.lha / perl5alpha1 / cv.h < prev    next >
C/C++ Source or Header  |  1993-07-30  |  1KB  |  40 lines

  1. /* $RCSfile: cv.h,v $$Revision: 4.1 $$Date: 92/08/07 18:26:42 $
  2.  *
  3.  *    Copyright (c) 1991, Larry Wall
  4.  *
  5.  *    You may distribute under the terms of either the GNU General Public
  6.  *    License or the Artistic License, as specified in the README file.
  7.  *
  8.  * $Log:        cv.h,v $
  9.  */
  10.  
  11. struct xpvcv {
  12.     char *    xpv_pv;        /* pointer to malloced string */
  13.     STRLEN    xpv_cur;    /* length of xp_pv as a C string */
  14.     STRLEN    xpv_len;    /* allocated size */
  15.     STRLEN    xof_off;    /* ptr is incremented by offset */
  16.     double    xnv_nv;        /* numeric value, if any */
  17.     MAGIC*    xmg_magic;    /* magic for scalar array */
  18.  
  19.     HV *    xcv_stash;
  20.     OP *    xcv_start;
  21.     OP *    xcv_root;
  22.     I32          (*xcv_usersub)();
  23.     I32        xcv_userindex;
  24.     GV *    xcv_filegv;
  25.     long    xcv_depth;        /* >= 2 indicates recursive call */
  26.     AV *    xcv_padlist;
  27.     bool    xcv_deleted;
  28. };
  29. #define Nullcv Null(CV*)
  30. #define CvSTASH(sv)    ((XPVCV*)SvANY(sv))->xcv_stash
  31. #define CvSTART(sv)    ((XPVCV*)SvANY(sv))->xcv_start
  32. #define CvROOT(sv)    ((XPVCV*)SvANY(sv))->xcv_root
  33. #define CvUSERSUB(sv)    ((XPVCV*)SvANY(sv))->xcv_usersub
  34. #define CvUSERINDEX(sv)    ((XPVCV*)SvANY(sv))->xcv_userindex
  35. #define CvFILEGV(sv)    ((XPVCV*)SvANY(sv))->xcv_filegv
  36. #define CvDEPTH(sv)    ((XPVCV*)SvANY(sv))->xcv_depth
  37. #define CvPADLIST(sv)    ((XPVCV*)SvANY(sv))->xcv_padlist
  38. #define CvDELETED(sv)    ((XPVCV*)SvANY(sv))->xcv_deleted
  39.  
  40.